package butines.core.game;

import java.awt.image.BufferedImage;
import java.awt.image.VolatileImage;
import java.util.List;


public interface GameContext {
	
	Input getInput();
	
	Audio getAudio();
	
	List<UIComponent> getRoot();
	
	float getTime();
	
	void shutdown();
	
	boolean isRunning();
	
	void setVisibleWindowCursor(boolean cursorVisible);
	
	boolean isVisibleWindowCursor();
	
	String getTitle();

	void setTitle(String title);
	
	void setGameCursor(GameCursor cursor);
	
	GameCursor getGameCursor();

	void setResolution(int width, int height, boolean fullScreen);
	
	BufferedImage createCompatibleImage(int w, int h, int transparency);
	
	VolatileImage createVolatileImage(int w, int h, int transparency);

	int getWidth();
	
	int getHeight();

	float getFrameTime();
	
	int getTargetFps();
	
}
